// 获取db引用
const db = uniCloud.databaseForJQL();

// 获取数据库命令对象
const dbCmd = db.command;

// 获取比赛记录表
const raceInfoCollection = db.collection('race-info');


// 封装添加比赛记录的函数
export const addRaceInfo = (data = {}) => {
	return raceInfoCollection.add(data)
		.then(
			res => {
				if (res.errCode == 0) {
					return res.errCode
				} else {
					uni.showToast({
						title: '保存失败',
						icon: 'error'
					})
				}
			}
		)
		.catch((err) => {
			uni.showToast({
				title: '保存失败',
				icon: 'error'
			})
			console.log(err.code); // 打印错误码
			console.log(err.message); // 打印错误内容
		})
}

// 封装获取比赛记录的函数
export const getRaceInfoList = () => {
	// 调用api获取数据
	return raceInfoCollection.where({}).orderBy('datetime', 'desc').get()
		.then((res) => {
			// res 为数据库查询结果
			// console.log("比赛记录:",res.data);
			if (res.errCode == 0) {
				// 返回比赛记录数据
				return res.data;
			} else {
				uni.showToast({
					title: '请求失败',
					icon: 'error'
				})
			}
		})
		.catch((err) => {
			uni.showToast({
				title: '查询失败',
				icon: 'error'
			})
			console.log(err.code); // 打印错误码
			console.log(err.message); // 打印错误内容
		})
}

// 封装根据条件查询云数据表符合条件的记录
export const queryDateRaceInfoList = (queryDate) => {
	 // 你想要查询的日期
	queryDate = queryDate.replaceAll('-','/')
	// 构造查询条件
	const query = { datetime: { $regex: queryDate, $options: 'i' }};
	// 获取匹配的文档
	return raceInfoCollection.where(query).orderBy('datetime', 'desc').get()
	.then((res) => {
		// res 为数据库查询结果
		// console.log("比赛记录:",res.data);
		if (res.errCode == 0) {
			// 返回比赛记录数据
			return res.data;
		} else {
			uni.showToast({
				title: '请求失败',
				icon: 'error'
			})
		}
	})
	.catch((err) => {
		uni.showToast({
			title: '查询失败',
			icon: 'error'
		})
		console.log(err.code); // 打印错误码
		console.log(err.message); // 打印错误内容
	})
}

const getCurrentDate = ()=> {
	let dt = new Date();
	let YY = dt.getFullYear();
	let MM = dt.getMonth() + 1;
	let DD = dt.getDate();
	MM = MM < 10 ? '0'+MM : MM;
	DD = DD < 10 ? '0'+DD : DD;
	return `${YY}/${MM}/${DD}`
}

// 封装获取分页的记录
export const pageRaceInfoList = (queryDate= getCurrentDate() , pageNum = 1,  pageSize=10)=> {
	console.log({queryDate , pageNum , pageSize})
	// 你想要查询的日期
	queryDate = queryDate.replaceAll('-','/')
	// 构造查询条件
	const query = { datetime: { $regex: queryDate, $options: 'i' }};
	// 假设每页显示10条记录
	// let pageSize = 10;
	// let pageNum = 1; // 当前页码，从1开始
	return raceInfoCollection
	.where(query)
	.orderBy('datetime', 'desc')
	.skip((pageNum - 1) * pageSize)
	.limit(pageSize)
	.get()
	.then(res => {
	    // console.log('查询结果：', res.data);
		// 返回data, 以后使用该函数 pageRaceInfoList 返回的结果就是promise,然后可以通过then获取此处data
		return res.data;
	}).catch(err => {
	    console.error('查询失败：', err);
	});
}


// 封装函数获取云数据表记录的总数量
export const  pageRaceInfoCount = (queryDate= getCurrentDate()  )=> {
	// 你想要查询的日期
	queryDate = queryDate.replaceAll('-','/')
	// 构造查询条件
	const query = { datetime: { $regex: queryDate, $options: 'i' }};
	return raceInfoCollection
	.where(query)
	.count()
}


// 编写函数删除比赛记录
export const removeRaceInfo = (id) => {
	return raceInfoCollection.where({_id: id}).remove()
}